MetaFork: A Metalanguage for Concurrency Platforms Targeting Multicores

نویسندگان

  • Xiaohui Chen
  • Marc Moreno Maza
  • Sushek Shekar
چکیده

In the past decade the pervasive ubiquitous of multicore processors has stimulated a constantly increasing effort in the development of concurrency platforms (such as CilkPlus, OpenMP, Intel TBB) targeting those architectures. While those programming languages are all based on the fork-join parallelism model, they largely differ on their way of expressing parallel algorithms and scheduling the corresponding tasks. Therefore, developing programs involving libraries written with several of those languages is a challenge. Nevertheless there is a real need for facilitating interoperability between concurrency platforms. Consider for instance the field of symbolic computation. The DMPMC library (from the TRIP project www.imcce.fr/trip developed at the Observatoire de Paris) provides sparse polynomial arithmetic and is entirely written in OpenMP meanwhile the BPAS library (from the Basic Polynomial Algebra Subprograms www.bpaslib.org developed at the University of Western Ontario) provides dense polynomial arithmetic is entirely written in CilkPlus. Polynomial system solvers require both sparse and dense polynomial arithmetic and thus could advantage of a combination of the DMPMC and BPAS libraries. Unfortunately, the run-time systems of CilkPlus and OpenMP cannot cooperate since their schedulers are based on different strategies, namely work stealing and work sharing, respectively. Therefore, an automatic translation mechanism is needed between CilkPlus and OpenMP. Another motivation for such software tool is comparative implementation with the objective of narrowing performance bottleneck. The underlying observation is that the same multithreaded algorithm, based on the fork-join parallelism model, implemented with two different concurrency platforms, say CilkPlus and OpenMP, could result in very different performance, often very hard to analyze and compare. If one code scales well while the other does not, one may suspect an efficient implementation of the latter as well as other possible causes such as higher parallelism overheads. Translating the inefficient code to the other language can help narrowing the problem. Indeed, if the translated code still does not scale one can suspect an implementation issue (say the programmer missed to parallelize one portion of the algorithm) whereas if it does scale, then one can suspect a parallelism overhead issue in the original code (say the grain-size of the parallel for-loop is too small). In this note, we propose MetaFork, a metalanguage for multithreaded algorithms based on the fork-join parallelism model [5] and targeting multicore architectures. By its parallel programming constructs, this language is currently a super-set of CilkPlus [4, 7, 9] and OpenMP Tasks [1]. However, this language does not compromise itself in any scheduling strategies (work stealing [6], work sharing, etc.) Thus, it does not make any assumptions about the run-time system. Based on the motivations stated above, a driving application of MetaFork is to facilitate automatic translations of programs between the above mentioned concurrency platforms. To

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

MetaFork: A Framework for Concurrency Platforms Targeting Multicores

We present MetaFork, a metalanguage for multithreaded algorithms based on the fork-join concurrency model and targeting multicore architectures. MetaFork is implemented as a source-to-source compilation framework allowing automatic translation of programs from one concurrency platform to another. The current version of this framework supports CilkPlus and OpenMP. We evaluate the benefits of the...

متن کامل

Experimenting with the MetaFork Framework Targeting Multicores

The work reported in this report evaluates the correctness, performance and usefulness of the four MetaFork translators (MetaFork to CilkPlus, CilkPlus to MetaFork, MetaFork to OpenMP, OpenMP to MetaFork). To this end, we run these translates on various input programs written either in CilkPlus or OpenMP, or both. We stress the fact that our purpose is not to compare the performance of the Cilk...

متن کامل

MetaFork: a compilation framework for concurrency models targeting hardware accelerators and its application to the generation of parametric CUDA kernels

In this paper, we present the accelerator model of MetaFork together with the software framework that allows automatic generation of CUDA code from annotated MetaFork programs. One of the key features of this CUDA code generator is that it supports the generation of CUDA kernel code where program parameters (like number of threads per block) and machine parameters (like shared memory size) are ...

متن کامل

Towards Power-Aware Data Pipelining on Multicores

Power consumption management has become a major concern in software development. Continuous streaming computations are usually composed by different modules, exchanging data through shared message queues. The selection of the algorithm used to access such queues (i.e., the concurrency control) is a critical aspect for both performance and power consumption. In this paper, we describe the design...

متن کامل

Nominal domain theory for concurrency

This paper investigates a methodology of using FM (FraenkelMostowski) sets, and the ideas of nominal set theory, to adjoin name generation to a semantic theory. By developing a domain theory for concurrency within FM sets the domain theory inherits types and operations for name generation, essentially without disturbing its original higherorder features. The original domain theory had a metalan...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2013